1Password CLIを使ってワンタイムパスワードをターミナル上に表示する
はじめに
こんにちは、サーバーレス開発部の夏目です。
AWSのMFAなどを管理するために1Passwordを使用しているのですが、をターミナルでワンタイムパスワードの入力が必要な際にいちいちアプリを開いてコピーするのが面倒でした。
1PasswordにはCLI Toolがあるので、それを使ってターミナル上にワンタイムパスワードを表示します。
表示のやり方
1. CLI Toolのダウンロード
まずはこちらのページからCLI Toolをダウンロードします。
以下はMacのターミナルで使用する場合のコマンドです。
$ curl -o cli.zip https://cache.agilebits.com/dist/1P/op/pkg/v0.4.1/op_darwin_amd64_v0.4.1.zip % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 3110k 100 3110k 0 0 2459k 0 0:00:01 0:00:01 --:--:-- 2522k $ unzip cli.zip Archive: cli.zip inflating: op extracting: op.sig $ ls -l total 24552 -rw-r--r-- 1 natsume.yuta staff 3184814 7 7 22:09 cli.zip -rwxr-xr-x 1 natsume.yuta staff 9376816 6 2 00:51 op -rw-r--r-- 1 natsume.yuta staff 566 6 2 00:51 op.sig
この"op"ファイルがCLIの実行ファイルになります。
2. 最初のサインイン
次に最初のサインインをします。
$ ./op signin example.1password.com [email protected] A3-XXXXXX-XXXXXX-XXXXX-XXXXX-XXXXX-XXXXX
example.1password.com
: 1Passwordの認証に使っているドメイン[email protected]
: 1Passwordに登録しているメールアドレスA3-XXXXXX-XXXXXX-XXXXX-XXXXX-XXXXX-XXXXX
: 1PasswordのアカウントのSecret Key
以上の情報を引数として渡して実行すると、マスターパスワードの入力が求められます。
Secret Keyなどの情報は1Passwordにアカウントを登録した際にダウンロードしたEmergency Kitに記載されていますので、わからない場合はそちらを確認してください。
これ以降は、以下のコマンドでサインインできるようになります。
(引数に渡すのは1Passwordの認証に使っているドメインのサブドメインだけでいいです)
$ ./op signin example
3. ワンタイムパスワードの表示
以下のコマンドでワンタイムパスワードを表示することができます。
$ op signin example --output=raw | op get totp -v "[ログイン名]"
[ログイン名]
: ワンタイムパスワードを登録している1Passwordのログイン情報の名前
こちらの方法だと毎回マスターパスワードの入力が必要になります。
セッション情報を環境変数に書くことで一度サインインすると、一定時間サインインなしで使用できるようになります。 その方法に関してはGet started with the command-line toolを確認して欲しい。
まとめ
以上の方法で1Passwordに登録しているワンタイムパスワードをターミナル上で表示することができました。 CLI Toolを使うと他にも色々とできるようなので、興味がある人は調べてみてください。